访问电脑版页面

导航:老古开发网手机版STM32单片机STM32单片机定时器

STM32F407定时器TIM1中断

导读:实验现象:LED灯0.5s闪烁/*****************************************************************************************函 数 名:bsp_Inittimer1*函数功能:初始化定时器1*形 参:无*返 回 值:无*******************
关键字:
stm32f407,tim1,中断,定时器,

实验现象:LED灯0.5s闪烁


/****************************************************************************************
*函 数 名:bsp_Inittimer1
*函数功能:初始化定时器1
*形 参:无
*返 回 值:无
*****************************************************************************************/
void bsp_Inittimer1(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrecture;
NVIC_InitTypeDef NVIC_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);/*使能定时器1的时钟*/


NVIC_InitStructure.NVIC_IRQChannel = TIM1_UP_TIM10_IRQn;/*定时器1的中断通道使能*/
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;/*定时器1的中断通道使能*/
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;/*抢占优先级*/
NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;/*响应优先级*/
NVIC_Init(&NVIC_InitStructure);/*配置中断分组,并使能中断*/

TIM_TimeBaseInitStrecture.TIM_Period = 10000;/*重装载寄存器*/
TIM_TimeBaseInitStrecture.TIM_Prescaler = 4200;/*预分配*/
TIM_TimeBaseInitStrecture.TIM_ClockDivision = TIM_CKD_DIV1;/*时钟分频*/
TIM_TimeBaseInitStrecture.TIM_CounterMode = TIM_CounterMode_Up;/*向上计数*/
TIM_TimeBaseInitStrecture.TIM_RepetitionCounter = 0;/*重复计数寄存器*/
TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStrecture);/*初始化*/

TIM_ClearFlag(TIM1,TIM_FLAG_Update);/*清更新标志位*/
TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);/*使能中断*/
TIM_Cmd(TIM1,ENABLE);/*使能计数*/

}
/****************************************************************************************
*函 数 名:TIM1_UP_TIM10_IRQHandler
*函数功能:定时器1的中断服务函数
*形 参:无
*返 回 值:无
*****************************************************************************************/
void TIM1_UP_TIM10_IRQHandler(void)
{
static unsigned char num;
num++;
if(num % 2 == 0)
GPIO_ResetBits(GPIOC,GPIO_Pin_2);/*点灯*/
else
GPIO_SetBits(GPIOC,GPIO_Pin_2);/*灭灯*/
TIM_ClearFlag(TIM1,TIM_FLAG_Update);/*清中断标志*/
}

/*
*********************************************************************************************************
* 函 数 名: main
* 功能说明: c程序入口
* 形 参:无
* 返 回 值: 错误代码(无需处理)
*********************************************************************************************************
*/
int main(void)
{
/*
ST固件库中的启动文件已经执行了 SystemInit() 函数,该函数在 system_stm32f4xx.c 文件,主要功能是
配置CPU系统的时钟,内部Flash访问时序,配置FSMC用于外部SRAM
*/
bsp_Init();//这里面对定时器1初始化


/* 进入主程序循环体 */
while (1)
{

}
}


来源:互联网   作者:karen  2018/12/28 12:00:02
栏目: [ STM32单片机定时器]

相关阅读

STM32F407定时器TIM1中断

STM32单片机使用定时器中断方式实现毫秒级延时的设计

stm32定时器中断与误区

STM32定时器配置定时时间总结

STM32单片机输出比较模式解析

STM32定时器时间的计算方法

基于STM32定时器的三种中心对齐计数模式

STM32系列芯片定时器的主要功能及应用解析

一个关于STM32定时器的CCR清零话题

STM32F429的定时器的使用方法

STM32定时器基本计数原理解析

STM32之系统时钟基定时器

STM32单片机通用定时器的编程设计

STM32定时器原理与使用

STM32单片机定时器的时钟源设置

STM32单片机通用定时器对lED灯的翻转控制设计

关于STM32F4定时器时钟频率问题

基于STM32定时器实现毫秒延时函数

STM32F10x 学习笔记之SysTick 定时器

基于STM32F429的定时器中断点亮LED的设计